/**
 * 获取变量的类型
 * @param v 
 * @returns 
 */
export function type(v: unknown): string {
  return Object.prototype.toString.call(v).slice(8, -1)
}

/**
 * 判断变量是否为对象
 * @param v 
 * @returns 
 */
export function isObject(v: unknown): boolean {
  return type(v) === 'Object'
}

/**
 * 判断变量是否为字符串
 * @param v 
 * @returns 
 */
export function isString(v: unknown): boolean {
  return type(v) === 'String'
}

/**
 * 判断变量是否为函数
 * @param v 
 * @returns 
 */
export function isFunction(v: unknown): boolean {
  return type(v) === 'Function'
}